package cn.itcast.sys.service;


import cn.itcast.orders.vo.OrderReportVO;
import cn.itcast.sys.vo.SalesTop10ReportVO;
import cn.itcast.sys.vo.TurnoverReportVO;
import cn.itcast.users.vo.UserReportVO;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.time.LocalDate;

public interface ReportService {

    /**
     * 营业额统计
     *
     * @param begin
     * @param end
     * @return
     */
    TurnoverReportVO getTurnoverReportVO(LocalDate begin, LocalDate end);

    /**
     * 用户统计接口
     *
     * @param begin
     * @param end
     * @return
     */
    UserReportVO getUserStatistics(LocalDate begin, LocalDate end);

    /**
     * 订单统计接口
     *
     * @param begin
     * @param end
     * @return
     */
    OrderReportVO getOrdersStatistics(LocalDate begin, LocalDate end);

    /**
     * 查询销量排名top10接口
     *
     * @param begin
     * @param end
     * @return
     */
    SalesTop10ReportVO getTop10(LocalDate begin, LocalDate end);

    /**
     * 导出Excel报表接口
     *
     * @param response
     */
    void export(HttpServletResponse response) throws IOException;
}
